package user

import (
	"net/http"

	"github.com/gin-gonic/gin"
)

// 定义handler只处理http请求，server处理业务逻辑，dao处理数据
type Handler struct {
	UserService *UserService
}

func NewHandler(userSrv *UserService) *Handler {
	return &Handler{UserService: userSrv}
}

// 处理请求的方法，和路由对接
func (h *Handler) getUser(c *gin.Context) {
	c.JSON(http.StatusOK, h.UserService.GetProfile())

}

// Handler 类型的方法，绑定到具体实例
// 负责将路由映射到具体的处理方法（如将 "/user" 路径映射到 getUser 处理函数）
// 方法在具体 Handler 实例上调用
func (h *Handler) RegisterRoutes(r *gin.Engine) {
	r.GET("/user", h.getUser)
}

// 是独立的包级函数
// 函数负责调用 Handler 实例的注册方法
// 三个参数，用于在 fx 依赖注入框架中管理生命周期
// // 函数在 fx 应用启动时被调用，作为连接依赖注入和路由注册的桥梁
// func RegisterRoutes(lc fx.Lifecycle, router *gin.Engine, handler *Handler) {
// 	handler.RegisterRoutes(router)
// }
